package tech.aistar.day07;

/**
 * 本类用来演示: 字符串的比较
 *
 * @author: success
 * @date: 2022/7/26 2:03 下午
 */
public class StringCompareDemo {
    public static void main(String[] args) {
        String s1 = new String("good");//堆,串池
        String s2 = new String("good");

        //String intern();//返回串池中的字符串
        System.out.println("good" == s1.intern());//true

        System.out.println(s1 == s2);//false,引用指向的是堆中的对象

        String s3 = "good";
        System.out.println(s2 == s3);//false

        //final => true
        String s4 = "a";
        String s5 = s4 + "b";//new StringBuilder("a").append("b").toString();
        String s6 = "ab";
        System.out.println(s6 == s5);//false

        String s7 = "a" + "b";
        System.out.println(s6 == s7);//true

        System.out.println("python" == getStr());//true

        int x = 10;
        String sx = String.valueOf(x);//int=>String  - 重新new了一个新的字符串
        System.out.println("10" == sx);//false

        String x1 = "ab";
        String x2 = x1.concat("c");//返回的是一个新的字符串
        System.out.println("abc" == x2);//false

        //字符串的截取
        //如果某个方法有返回类型 - new
        //如果某个方法没有返回类型 - 直接操作的.
        String subStr = "abc".substring(1);//下标从0开始
        System.out.println(subStr == "bc");//false
    }

    public static String getStr(){
        return "python";
    }
}
